↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
PERM_IN_GA(L, .(H, T)) → U3_GA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_GA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_GG(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_GA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_GG(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_GA(L, H, T, perm_in_aa(W, T))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_AA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_AA(L, H, T, perm_in_aa(W, T))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
PERM_IN_GA(L, .(H, T)) → U3_GA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_GA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_GG(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_GA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_GG(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_GA(L, H, T, perm_in_aa(W, T))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_AA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_AA(L, H, T, perm_in_aa(W, T))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APPEND1_IN_GG(parts, is(sum)) → APPEND1_IN_GG(parts, is(sum))
APPEND1_IN_GG(parts, is(sum)) → APPEND1_IN_GG(parts, is(sum))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
APPEND2_IN_GG(parts, is(sum)) → APPEND2_IN_GG(parts, is(sum))
APPEND2_IN_GG(parts, is(sum)) → APPEND2_IN_GG(parts, is(sum))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
PERM_IN_AA → U3_AA(append2_in_gg(parts, is(sum)))
U4_AA(append1_out_gg) → PERM_IN_AA
U3_AA(append2_out_gg) → U4_AA(append1_in_gg(parts, is(sum)))
append1_in_gg(parts, is(sum)) → append1_out_gg
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg) → append1_out_gg
U1_gg(append2_out_gg) → append2_out_gg
append1_in_gg(x0, x1)
append2_in_gg(x0, x1)
U2_gg(x0)
U1_gg(x0)
U3_AA(append2_out_gg) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
U3_AA(append2_out_gg) → U4_AA(append1_out_gg)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
PERM_IN_AA → U3_AA(append2_in_gg(parts, is(sum)))
U3_AA(append2_out_gg) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
U4_AA(append1_out_gg) → PERM_IN_AA
U3_AA(append2_out_gg) → U4_AA(append1_out_gg)
append1_in_gg(parts, is(sum)) → append1_out_gg
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg) → append1_out_gg
U1_gg(append2_out_gg) → append2_out_gg
append1_in_gg(x0, x1)
append2_in_gg(x0, x1)
U2_gg(x0)
U1_gg(x0)
PERM_IN_AA → U3_AA(U1_gg(append2_in_gg(parts, is(sum))))
PERM_IN_AA → U3_AA(append2_out_gg)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
PERM_IN_AA → U3_AA(U1_gg(append2_in_gg(parts, is(sum))))
PERM_IN_AA → U3_AA(append2_out_gg)
U4_AA(append1_out_gg) → PERM_IN_AA
U3_AA(append2_out_gg) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
U3_AA(append2_out_gg) → U4_AA(append1_out_gg)
append1_in_gg(parts, is(sum)) → append1_out_gg
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg) → append1_out_gg
U1_gg(append2_out_gg) → append2_out_gg
append1_in_gg(x0, x1)
append2_in_gg(x0, x1)
U2_gg(x0)
U1_gg(x0)
PERM_IN_AA → U3_AA(U1_gg(append2_in_gg(parts, is(sum))))
PERM_IN_AA → U3_AA(append2_out_gg)
U4_AA(append1_out_gg) → PERM_IN_AA
U3_AA(append2_out_gg) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
U3_AA(append2_out_gg) → U4_AA(append1_out_gg)
append1_in_gg(parts, is(sum)) → append1_out_gg
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg) → append1_out_gg
U1_gg(append2_out_gg) → append2_out_gg
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
PERM_IN_GA(L, .(H, T)) → U3_GA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_GA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_GG(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_GA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_GG(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_GA(L, H, T, perm_in_aa(W, T))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_AA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_AA(L, H, T, perm_in_aa(W, T))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PERM_IN_GA(L, .(H, T)) → U3_GA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_GA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_GG(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_GA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_GA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_GG(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_GA(L, H, T, perm_in_aa(W, T))
U4_GA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
PERM_IN_AA(L, .(H, T)) → APPEND2_IN_GG(parts(V, .(H, U)), is(sum(L)))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → APPEND1_IN_GG(parts(V, U), is(sum(W)))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_AA(L, H, T, perm_in_aa(W, T))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
APPEND1_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND1_IN_GG(parts(X, Y), is(sum(Z)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
APPEND1_IN_GG(parts, is(sum)) → APPEND1_IN_GG(parts, is(sum))
APPEND1_IN_GG(parts, is(sum)) → APPEND1_IN_GG(parts, is(sum))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
APPEND2_IN_GG(parts(.(H, X), Y), is(sum(.(H, Z)))) → APPEND2_IN_GG(parts(X, Y), is(sum(Z)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
APPEND2_IN_GG(parts, is(sum)) → APPEND2_IN_GG(parts, is(sum))
APPEND2_IN_GG(parts, is(sum)) → APPEND2_IN_GG(parts, is(sum))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
perm_in_ga([], []) → perm_out_ga([], [])
perm_in_ga(L, .(H, T)) → U3_ga(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U3_ga(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_ga(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U4_ga(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_ga(L, H, T, perm_in_aa(W, T))
perm_in_aa([], []) → perm_out_aa([], [])
perm_in_aa(L, .(H, T)) → U3_aa(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U3_aa(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_aa(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
U4_aa(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → U5_aa(L, H, T, perm_in_aa(W, T))
U5_aa(L, H, T, perm_out_aa(W, T)) → perm_out_aa(L, .(H, T))
U5_ga(L, H, T, perm_out_aa(W, T)) → perm_out_ga(L, .(H, T))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U3_AA(L, H, T, append2_out_gg(parts(V, .(H, U)), is(sum(L)))) → U4_AA(L, H, T, V, U, append1_in_gg(parts(V, U), is(sum(W))))
PERM_IN_AA(L, .(H, T)) → U3_AA(L, H, T, append2_in_gg(parts(V, .(H, U)), is(sum(L))))
U4_AA(L, H, T, V, U, append1_out_gg(parts(V, U), is(sum(W)))) → PERM_IN_AA(W, T)
append1_in_gg(parts([], Y), is(sum(Y))) → append1_out_gg(parts([], Y), is(sum(Y)))
append1_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U2_gg(H, X, Y, Z, append1_in_gg(parts(X, Y), is(sum(Z))))
append2_in_gg(parts([], Y), is(sum(Y))) → append2_out_gg(parts([], Y), is(sum(Y)))
append2_in_gg(parts(.(H, X), Y), is(sum(.(H, Z)))) → U1_gg(H, X, Y, Z, append2_in_gg(parts(X, Y), is(sum(Z))))
U2_gg(H, X, Y, Z, append1_out_gg(parts(X, Y), is(sum(Z)))) → append1_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
U1_gg(H, X, Y, Z, append2_out_gg(parts(X, Y), is(sum(Z)))) → append2_out_gg(parts(.(H, X), Y), is(sum(.(H, Z))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(append1_in_gg(parts, is(sum)))
U4_AA(append1_out_gg(parts, is(sum))) → PERM_IN_AA
PERM_IN_AA → U3_AA(append2_in_gg(parts, is(sum)))
append1_in_gg(parts, is(sum)) → append1_out_gg(parts, is(sum))
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg(parts, is(sum))
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg(parts, is(sum))) → append1_out_gg(parts, is(sum))
U1_gg(append2_out_gg(parts, is(sum))) → append2_out_gg(parts, is(sum))
append1_in_gg(x0, x1)
append2_in_gg(x0, x1)
U2_gg(x0)
U1_gg(x0)
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(append1_out_gg(parts, is(sum)))
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(append1_out_gg(parts, is(sum)))
U4_AA(append1_out_gg(parts, is(sum))) → PERM_IN_AA
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
PERM_IN_AA → U3_AA(append2_in_gg(parts, is(sum)))
append1_in_gg(parts, is(sum)) → append1_out_gg(parts, is(sum))
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg(parts, is(sum))
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg(parts, is(sum))) → append1_out_gg(parts, is(sum))
U1_gg(append2_out_gg(parts, is(sum))) → append2_out_gg(parts, is(sum))
append1_in_gg(x0, x1)
append2_in_gg(x0, x1)
U2_gg(x0)
U1_gg(x0)
PERM_IN_AA → U3_AA(U1_gg(append2_in_gg(parts, is(sum))))
PERM_IN_AA → U3_AA(append2_out_gg(parts, is(sum)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ NonTerminationProof
PERM_IN_AA → U3_AA(U1_gg(append2_in_gg(parts, is(sum))))
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(append1_out_gg(parts, is(sum)))
PERM_IN_AA → U3_AA(append2_out_gg(parts, is(sum)))
U4_AA(append1_out_gg(parts, is(sum))) → PERM_IN_AA
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
append1_in_gg(parts, is(sum)) → append1_out_gg(parts, is(sum))
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg(parts, is(sum))
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg(parts, is(sum))) → append1_out_gg(parts, is(sum))
U1_gg(append2_out_gg(parts, is(sum))) → append2_out_gg(parts, is(sum))
append1_in_gg(x0, x1)
append2_in_gg(x0, x1)
U2_gg(x0)
U1_gg(x0)
PERM_IN_AA → U3_AA(U1_gg(append2_in_gg(parts, is(sum))))
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(append1_out_gg(parts, is(sum)))
PERM_IN_AA → U3_AA(append2_out_gg(parts, is(sum)))
U4_AA(append1_out_gg(parts, is(sum))) → PERM_IN_AA
U3_AA(append2_out_gg(parts, is(sum))) → U4_AA(U2_gg(append1_in_gg(parts, is(sum))))
append1_in_gg(parts, is(sum)) → append1_out_gg(parts, is(sum))
append1_in_gg(parts, is(sum)) → U2_gg(append1_in_gg(parts, is(sum)))
append2_in_gg(parts, is(sum)) → append2_out_gg(parts, is(sum))
append2_in_gg(parts, is(sum)) → U1_gg(append2_in_gg(parts, is(sum)))
U2_gg(append1_out_gg(parts, is(sum))) → append1_out_gg(parts, is(sum))
U1_gg(append2_out_gg(parts, is(sum))) → append2_out_gg(parts, is(sum))